package com.it.entity.preClaim;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 预赔信息表（农户申请理想赔付及领导审核记录）
 * </p>
 *
 * @author lutao
 * @since 2025年09月24日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_pre_claim")
public class AiPreClaim implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 预赔唯一ID（编码规则：PRE+日期+6位序列号）
     */
    @TableId(value = "pre_claim_id", type = IdType.AUTO)
    private Integer preClaimId;

    /**
     * 关联报案ID（关联报案表）
     */
    @TableField("report_id")
    private String reportId;

    /**
     * 关联立案ID（关联立案表）
     */
    @TableField("registration_id")
    private String registrationId;

    /**
     * 关联保单编号
     */
    @TableField("policy_id")
    private String policyId;

    /**
     * 关联投保人ID
     */
    @TableField("insured_id")
    private String insuredId;

    /**
     * 农户申请时间
     */
    @TableField("farmer_apply_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime farmerApplyTime;

    /**
     * 农户理想赔付金额（申请的期望金额）
     */
    @TableField("farmer_expected_amount")
    private BigDecimal farmerExpectedAmount;

    /**
     * 申请理由（如：损失严重影响生计，希望尽快获得较高赔付）
     */
    @TableField("apply_reason")
    private String applyReason;

    /**
     * 审核员ID（关联工作人员表，需管理层角色）
     */
    @TableField("reviewer_id")
    private String reviewerId;

    /**
     * 审核时间
     */
    @TableField("review_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reviewTime;

    /**
     * 审核结果（1-通过，2-部分通过，3-驳回）
     */
    @TableField("review_result")
    private Integer reviewResult;

    /**
     * 批准预赔金额（通过/部分通过时填写）
     */
    @TableField("approved_amount")
    private BigDecimal approvedAmount;

    /**
     * 审核意见（如：同意按申请金额预赔；或：结合损失情况，建议预赔XX元）
     */
    @TableField("review_opinion")
    private String reviewOpinion;

    /**
     * 预赔状态（1-待审核，2-审核通过，3-部分通过，4-已驳回）
     */
    @TableField("pre_claim_status")
    private Integer preClaimStatus;


}
